File manager - Edit - /home/autoph/public_html/projects/tickets-autohub/app/Http/Controllers/VehicleController.php
Back
<?php namespace App\Http\Controllers; use App\Models\Company; use App\Models\Dealer; use App\Models\Vehicle; use Carbon\Carbon; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\DB; use Silber\Bouncer\Bouncer; // use Silber\Bouncer\BouncerFacade; class VehicleController extends Controller { private $vehicle, $logged_inUser, $auth; public function __construct() { $this->vehicle = New Vehicle; $this->logged_inUser = Auth::user(); $this->auth = new AuthenticationController; } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { if($this->auth->checkMaintenance() == "true"){ abort(503); } $user = Auth::user(); $abilities = $user->getAbilities()->pluck('name'); return view('layouts.authentication.admin.vehicle.index',compact('abilities')) ->with(['title_page'=>"Carplus Ticket"]); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function fetchAll(Request $request){ // dd($request->all()); // $bouncer = Bouncer::forUser($this->logged_inUser); $array_data['search_keyword'] = $request->search['value']; if(empty($request->search_type)){ $array_data['search_type'] = ""; } else { $array_data['search_type'] = json_decode($request->search_type,true)[0]; } $array_data['sort'] = $request->order[0]['dir']; $array_data['order'] = $request->columns[$request->order[0]['column']]['data']; $array_data['offset'] = $request->start; $array_data['limit'] = $request->length; $array_data['offset_limit'] = " LIMIT {$array_data['offset']},{$array_data['limit']}"; $array_data['sort'] = " ORDER BY {$array_data['order']} {$array_data['sort']} "; $array_data['search'] = ""; if(!empty($array_data['search_keyword'])){ switch($array_data['search_type']){ case "Ticket ID": $array_data['search'] =" AND `cp`.`id` LIKE '%{$array_data['search_keyword']}%' "; break; case "Sender": $array_data['search'] = " AND (`usr`.`f_name` LIKE '%{$array_data['search_keyword']}%' OR `usr`.`l_name` LIKE '%{$array_data['search_keyword']}%') "; break; case "Dealer": $array_data['search'] = " AND `usr`.`deal_code` LIKE '%{$array_data['search_keyword']}%' "; break; case "Company": $array_data['search'] = " AND `usr`.`comp_code` LIKE '%{$array_data['search_keyword']}%' "; break; } } $array_data['where'] = ""; $data = $request->data; if(!empty($data['from_date']) && !empty($data['to_date'])){ $from = Carbon::parse($data['from_date']); $to = Carbon::parse($data['to_date']); $fromdate = $from->toDateString(); $todate = $to->toDateString(); $array_data['where'] .= " AND DATE(`cp`.`created_at`) BETWEEN '$fromdate' AND '$todate' "; } if(!empty($data['option'])){ $array_data['where'] .= " AND `cp`.`status` LIKE '%{$data['option']}%' "; } if(!empty($data['company'])){ $company = Company::find($data['company']); $array_data['where'] .= " AND `usr`.`comp_code` LIKE '%{$company->comp_code}%' "; } if(!empty($data['dealer'])){ $dealer = Dealer::find($data['dealer']); $array_data['where'] .= " AND `usr`.`deal_code` LIKE '%{$dealer->dealer_code}%' "; } // dd(Auth::user()->getAbilities()); if(Auth::user()->can(['update-carplus-ticket']) ){ $array_data['where'] .= " AND `cp`.`ticket_creator_id` = " . Auth::user()->id; } $id = Auth::user()->department_id; // $array_data['where'] .= " AND `tu`.`assigned_dept` = {$id} "; $results = $this->vehicle->fetchCarplusTickets($array_data); $result['data'] = array(); foreach($results as $row){ $result['data'][] = [ "id" => $row->id, "creator_id" => $row->ticket_creator_id, "status" => ucfirst($row->status), "sender" => $row->sender, "deal_code" => $row->deal_code, "comp_code" => $row->comp_code, "created_at" => $row->created_at ]; } $result['draw'] = $request->draw; $result['recordsTotal'] = $this->vehicle->fetchCarplusTicketsCount($array_data)[0]->Count; $result['recordsFiltered'] = $this->vehicle->fetchCarplusTicketsFilteredCount($array_data)[0]->FilteredCount; return response()->json($result); } public function create() { return view('layouts.authentication.admin.vehicle.create') ->with(['title_page'=>"Create Carplus Ticket"]); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { // dd($request->all()); $request->validate([ "v_fname" => 'required|string', "v_mname" => 'nullable|string', "v_lname" => 'required|string', "v_address" => 'required', "v_contact" => 'required|numeric', "v_email" => 'required|email', "v_make" => 'required|string', "v_model" => 'required|string', "v_year" => 'required|numeric', "v_vin" => 'required', "v_lp" => 'required', "v_color" => 'required', "v_pd" => 'required', "v_pprice" => 'required', "v_dealer" => 'required', // "v_financing" => 'required', "v_regep" => 'required', "v_regno" => 'required', "v_regstate" => 'required', "v_insurance" => 'required', "v_polno" => 'required', "v_polexp" => 'required', // "v_lsd" => 'required', // "v_lst" => 'required', // "v_nsd" => 'required', // "v_sp" => 'required', // "v_notes" => 'required', ],[ 'v_fname.required' => 'Customer First Name is required', // 'v_mname.required' => '', 'v_lname.required' => 'Customer Last Name is required', 'v_address.required' => 'Customer Address is required', 'v_contact.required' => 'Customer Contact is required', 'v_contact.numeric' => 'Customer Contact should consist only of numeric value', 'v_email.required' => 'Customer Email is required', 'v_make.required' => 'Vehicle Make is required', 'v_model.required' => 'Vehicle Model is required', 'v_year.required' => 'Vehicle Year is required', 'v_year.numeric' => 'Vehicle Year should consist only of numeric value', 'v_vin.required' => 'Vehicle Identification Number is required', 'v_lp.required' => 'Vehicle License Plate is required', 'v_color.required' => 'Vehicle Color is required', 'v_pd.required' => 'Vehicle Purchase Date is required', // 'v_pprice.required' => 'Vehicle Purchase Price is required', 'v_dealer.required' => 'Vehicle Dealer/Location is required', // 'v_financing.required' => '', 'v_regep.required' => 'Vehicle Registration Expiry is required', 'v_regno.required' => 'Vehicle Registration No. is required', 'v_regstate.required' => 'Vehicle Registration State is required', 'v_insurance.required' => 'Vehicle Insurance Provider is required', 'v_polno.required' => 'Vehicle Policy Number is required', 'v_polexp.required' => 'Vehicle Policy Expiration Date is required', // 'v_lsd.required' => 'Vehicle Last Service Date is required', // 'v_lst.required' => 'Vehicle Last Service Type is required', // 'v_nsd.required' => 'Vehicle Next Service Due is required', // 'v_sp.required' => 'Vehicle Service Provider is required', // 'v_notes.required' => '', ]); $vehicle_ticket = Vehicle::create([ 'owner_fname' => $request->v_fname, 'owner_mname' => $request->v_mname, 'owner_lname' => $request->v_lname, 'owner_address' => $request->v_address, 'owner_phone' => $request->v_contact, 'owner_email' => $request->v_email, 'vehicle_make' => $request->v_make, 'vehicle_model' => $request->v_model, 'vehicle_year' => $request->v_year, 'vehicle_vin' => $request->v_vin, 'license_plate' => $request->v_lp, 'vehicle_color' => $request->v_color, 'purchase_date' => Carbon::parse($request->v_pd), 'purchase_price' => str_replace(['_', ','], '',$request->v_pprice), 'dealer_location' => $request->v_dealer, 'financing_details' => $request->v_financing, 'registration_expiry' => Carbon::parse($request->v_regep), 'registration_number' => $request->v_regno, 'registration_state' => $request->v_regstate, 'insurance_provider' => $request->v_insurance, 'policy_number' => $request->v_polno, 'policy_expiry' => Carbon::parse($request->v_polexp), 'last_service_date' => $request->v_lsd, 'last_service_type' => $request->v_lst, 'next_service_due' => $request->v_nsd, 'service_provider' => $request->v_sp, ]); if($vehicle_ticket){ if($request->v_notes){ $result = DB::table('vehicle_notes') ->insert([ "vehicle_id"=>$vehicle_ticket->id, "note" =>$request->v_notes, "created_by"=> Auth::user()->id ]); } $result = DB::table('carplus_tickets') ->insert([ 'ticket_creator_id' => Auth::user()->id, 'vehicle_id' => $vehicle_ticket->id, 'status' => "open", ]); return response()->json(['message'=>"Success"],200); } } /** * Display the specified resource. * * @param \App\Models\Vehicle $vehicle * @return \Illuminate\Http\Response */ public function show(Request $request) { $vehicle = Vehicle::findOrFail($request->id); $notes = $this->vehicle->getNotes($vehicle['id']); return response()->json(['vehicle'=>$vehicle,'notes'=>$notes]); } /** * Show the form for editing the specified resource. * * @param \App\Models\Vehicle $vehicle * @return \Illuminate\Http\Response */ public function edit(Vehicle $vehicle) { // } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param \App\Models\Vehicle $vehicle * @return \Illuminate\Http\Response */ public function update(Request $request) { $vehicle = DB::table('vehicles') ->where('id',$request->_idShow) ->first(); if(empty($vehicle)){ return response()->json(['message'=>"Record not exist"],404); } $vehicle_ticket = DB::table('carplus_tickets') ->where('vehicle_id',$vehicle->id) ->first(); // dd($vehicle_ticket); if ($vehicle_ticket->status == "closed"){ return response()->json(['error'=>"Ticket is closed already"],403); } $request->validate([ "v_fname" => 'required|string', "v_mname" => 'nullable|string', "v_lname" => 'required|string', "v_address" => 'required', "v_contact" => 'required|numeric', "v_email" => 'required', "v_make" => 'required|string', "v_model" => 'required|string', "v_year" => 'required', "v_vin" => 'required', "v_lp" => 'required', "v_color" => 'required', "v_pd" => 'required', "v_pprice" => 'required', "v_dealer" => 'required', // "v_financing" => 'required', "v_regep" => 'required', "v_regno" => 'required', "v_regstate" => 'required', "v_insurance" => 'required', "v_polno" => 'required', "v_polexp" => 'required', // "v_lsd" => 'required', // "v_lst" => 'required', // "v_nsd" => 'required', // "v_sp" => 'required', // "v_notes" => 'required', ],[ 'v_fname.required' => 'Customer First Name is required', // 'v_mname.required' => '', 'v_lname.required' => 'Customer Last Name is required', 'v_address.required' => 'Customer Address is required', 'v_contact.required' => 'Customer Contact is required', 'v_contact.numeric' => 'Customer Contact should consist only of numeric value', 'v_email.required' => 'Customer Email is required', 'v_make.required' => 'Vehicle Make is required', 'v_model.required' => 'Vehicle Model is required', 'v_year.required' => 'Vehicle Year is required', 'v_vin.required' => 'Vehicle Identification Number is required', 'v_lp.required' => 'Vehicle License Plate is required', 'v_color.required' => 'Vehicle Color is required', 'v_pd.required' => 'Vehicle Purchase Date is required', // 'v_pprice.required' => 'Vehicle Purchase Price is required', 'v_dealer.required' => 'Vehicle Dealer/Location is required', // 'v_financing.required' => '', 'v_regep.required' => 'Vehicle Registration Expiry is required', 'v_regno.required' => 'Vehicle Registration No. is required', 'v_regstate.required' => 'Vehicle Registration State is required', 'v_insurance.required' => 'Vehicle Insurance Provider is required', 'v_polno.required' => 'Vehicle Policy Number is required', 'v_polexp.required' => 'Vehicle Policy Expiration Date is required', // 'v_lsd.required' => 'Vehicle Last Service Date is required', // 'v_lst.required' => 'Vehicle Last Service Type is required', // 'v_nsd.required' => 'Vehicle Next Service Due is required', // 'v_sp.required' => 'Vehicle Service Provider is required', // 'v_notes.required' => '', ]); $vehicle = DB::table('vehicles') ->where('id',$request->_idShow) ->update([ 'owner_fname' => $request->v_fname, 'owner_mname' => $request->v_mname, 'owner_lname' => $request->v_lname, 'owner_address' => $request->v_address, 'owner_phone' => $request->v_contact, 'owner_email' => $request->v_email, 'vehicle_make' => $request->v_make, 'vehicle_model' => $request->v_model, 'vehicle_year' => $request->v_year, 'vehicle_vin' => $request->v_vin, 'license_plate' => $request->v_lp, 'vehicle_color' => $request->v_color, 'purchase_date' => Carbon::parse($request->v_pd), 'purchase_price' => str_replace(['_', ','], '',$request->v_pprice), 'dealer_location' => $request->v_dealer, 'financing_details' => $request->v_financing, 'registration_expiry' => Carbon::parse($request->v_regep), 'registration_number' => $request->v_regno, 'registration_state' => $request->v_regstate, 'insurance_provider' => $request->v_insurance, 'policy_number' => $request->v_polno, 'policy_expiry' => Carbon::parse($request->v_polexp), 'last_service_date' => Carbon::parse($request->v_lsd), 'last_service_type' => $request->v_lst, 'next_service_due' => $request->v_nsd, 'service_provider' => $request->v_sp, ]); return response()->json(['message'=>"Updated Successfully"]); } public function addNote(Request $request, $id){ $v_id = DB::table('carplus_tickets') ->select('vehicle_id') ->where('id',$id) ->first(); if($v_id){ if(!empty($request->note)){ $result = DB::table('vehicle_notes') ->insert([ "vehicle_id"=>$v_id->vehicle_id, "note" =>$request->note, "created_by"=> Auth::user()->id ]); return response()->json(['message'=>"Success. Note Added"],201); } else { return response()->json(['message'=>"Please provide a note"],403); } } return response()->json(['message'=>"Invalid Request"],403); } /** * Remove the specified resource from storage. * * @param \App\Models\Vehicle $vehicle * @return \Illuminate\Http\Response */ public function destroy($id) { // $cptckt = DB::table('carplus_tickets') // ->where('id',$id) // ->update([ // "status"=>"closed" // ]); // return response()->json(['message'=>"Success"],200); $result = DB::table('carplus_tickets') ->where('id', $id) ->update([ 'status' => DB::raw(" CASE WHEN status = 'open' THEN 'closed' ELSE status END "), 'assessed_by_id' => Auth::user()->id, 'deleted_at' => NOW() ]); if ($result) { $responseMessage = ($result > 0) ? 'Ticket successfully closed' : 'The ticket is already closed'; return response()->json(['message' => $responseMessage], 200); } return response()->json(['message' => 'Ticket is already closed'], 400); } }
| ver. 1.4 |
.
| PHP 8.1.32 | Generation time: 0.26 |
proxy
|
phpinfo
|
Settings